﻿Imports Microsoft.VisualBasic

Public Class ApoderadoCRN
    Public Sub InsetarApoderado(ByVal objPersona As Persona, ByVal objApoderado As Apoderado)

        If objPersona Is Nothing Then
            Throw New Exception("El objeto no puede ser nulo")
        End If

        If String.IsNullOrEmpty(objPersona.Nombre) Then
            Throw New Exception("El nombre del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.ApellidoP) Then
            Throw New Exception("El Apellido Paterno del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.ApellidoM) Then
            Throw New Exception("El Apellido Materno del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.CI) Then
            Throw New Exception("El CI del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Sexo) Then
            Throw New Exception("El Sexo del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Direccion) Then
            Throw New Exception("La Direccion del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Telefono) Then
            Throw New Exception("El Telefono del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.FechaN) Then
            Throw New Exception("La Fecha de Nacimiento del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.LugarN) Then
            Throw New Exception("El Lugar de Nacimiento del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objApoderado.Trabajo) Then
            Throw New Exception("La trabajo del apoderado no puede ser nulo ni vacio")
        End If

        Dim adapter As ApoderadoDSTableAdapters.ApoderadoTableAdapter = New ApoderadoDSTableAdapters.ApoderadoTableAdapter()

        Dim apoderadoId? As Integer = 0

        adapter.Insert(apoderadoId, objPersona.Nombre, objPersona.ApellidoP, objPersona.ApellidoM, objPersona.CI, objPersona.Sexo, objPersona.Direccion, objPersona.Telefono, objPersona.Email, objPersona.FechaN, objPersona.LugarN, objPersona.Celular, objApoderado.Trabajo, objApoderado.FonoTrabajo, objApoderado.Profesion)

        If apoderadoId Is Nothing Or apoderadoId.Value <= 0 Then
            Throw New Exception("El query se ejecuto correctamente pero no se genero la llave primaria")
        End If

        objPersona.personaId = apoderadoId.Value

    End Sub

    Public Sub ActualizarApoderado(ByVal objPersona As Persona, ByVal objApoderado As Apoderado)

        If objPersona Is Nothing Then
            Throw New Exception("El objeto no puede ser nulo")
        End If

        If String.IsNullOrEmpty(objPersona.Nombre) Then
            Throw New Exception("El nombre del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.ApellidoP) Then
            Throw New Exception("El Apellido Paterno del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.ApellidoM) Then
            Throw New Exception("El Apellido Materno del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.CI) Then
            Throw New Exception("El CI del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Sexo) Then
            Throw New Exception("El Sexo del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Direccion) Then
            Throw New Exception("La Direccion del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.Telefono) Then
            Throw New Exception("El Telefono del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.FechaN) Then
            Throw New Exception("La Fecha de Nacimiento del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objPersona.LugarN) Then
            Throw New Exception("El Lugar de Nacimiento del apoderado no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objApoderado.Trabajo) Then
            Throw New Exception("La trabajo del apoderado no puede ser nulo ni vacio")
        End If

        Dim adapter As ApoderadoDSTableAdapters.ApoderadoTableAdapter = New ApoderadoDSTableAdapters.ApoderadoTableAdapter()

        adapter.Update(objPersona.personaId, objPersona.Nombre, objPersona.ApellidoP, objPersona.ApellidoM, objPersona.CI, objPersona.Sexo, objPersona.Direccion, objPersona.Telefono, objPersona.Email, objPersona.FechaN, objPersona.LugarN, objPersona.Celular, objApoderado.Trabajo, objApoderado.FonoTrabajo, objApoderado.Profesion)

    End Sub

    Public Sub EliminarApoderado(ByVal codApo As Integer)

        If codApo <= 0 Then
            Throw New Exception("El id del apoderado no puede ser menor o igual que cero")
        End If

        Dim adapter As ApoderadoDSTableAdapters.ApoderadoTableAdapter = New ApoderadoDSTableAdapters.ApoderadoTableAdapter()

        adapter.Delete(codApo)

    End Sub

End Class
